 ///
 /// @file    strategy.h
 /// @author  lemon(haohb13@gmail.com)
 /// @date    2016-03-17 16:25:51
 ///

#ifndef _MY_STRATEGY_H__
#define _MY_STRATEGY_H__

class Strategy;

class Context
{
public:
	Context(Strategy * strategy);
	~Context();
	void contextInterface();
private:
	Strategy * _pStrategy;
};


class Strategy
{
public:
	virtual ~Strategy(){}

	virtual void algorithmInterface() = 0;
};

class ConcreateStrategy : public Strategy
{
public:
	virtual ~ConcreateStrategy(){}
	virtual void algorithmInterface();
};


class ConcreateStrategyB : public Strategy
{
public:
	virtual ~ConcreateStrategyB(){}
	virtual void algorithmInterface();
};

#endif
